
[dbo].[sp_asi_UnformatPhoneNumber]
create procedure sp_asi_UnformatPhoneNumber
@table VARCHAR(100),
@column VARCHAR(100)
AS
DECLARE @sql VARCHAR(2000)
DECLARE @phone VARCHAR(100)
SET @sql = 'DECLARE csrPhone CURSOR GLOBAL FOR ' +
'SELECT ' + @column + ' ' +
'FROM ' + @table + ' ' +
'WHERE ' + @column + ' LIKE ''%[^0-9]%'' ' +
'FOR UPDATE '
EXEC(@sql)
OPEN csrPhone
FETCH NEXT FROM csrPhone INTO @phone
SET NOCOUNT ON
WHILE @@FETCH_STATUS = 0
BEGIN
WHILE PATINDEX('%[^0-9]%', @phone) > 0
SET @phone = STUFF(@phone, PATINDEX('%[^0-9]%', @phone), 1, '')
SET @sql = 'UPDATE ' + @table + ' ' +
'SET ' + @column + ' = ''' + @phone + ''' ' +
'WHERE CURRENT OF GLOBAL csrPhone '
EXEC(@sql)
FETCH NEXT FROM csrPhone INTO @phone
END
SET NOCOUNT OFF
CLOSE csrPhone
DEALLOCATE csrPhone
GO
GRANT EXECUTE ON [dbo].[sp_asi_UnformatPhoneNumber] TO [IMIS]
GO